package io.itit.ecp.admin.provide.action.resp;

import io.itit.grass.dict.starter.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


@Data
@ToString
@ApiModel("项目计量统计详情响应结果")
public class ProjectMeterStaticsDetailRes implements Serializable {

    @ApiModelProperty("所属项目id")
    private String id;

    @ApiModelProperty("所属项目名称")
    private String sceneProjectName;

    @ApiModelProperty("项目地点")
    private String address;

    @ApiModelProperty("项目状态(1:待开发,2:开发中,3:已结束,4:已停止) >> distCode：ecp-admin.sceneProject.status")
    @Dict(dictCode = "ecp-admin.sceneProject.status")
    private String status;

    @ApiModelProperty("项目负责人")
    private String userName;

    @ApiModelProperty("联系方式")
    private String mobilePhone;

    @ApiModelProperty("公司关联空间")
    private String roomInfo;

    @ApiModelProperty("统计时间")
    private Date staticsTime;

    @ApiModelProperty("能源类型名称")
    private String energyTypeName;

    @ApiModelProperty("数据列表")
    private List<MeterDeviceDetail> meterDeviceDetails;

    @Data
    @Accessors(chain = true)
    public static class MeterDeviceDetail implements Serializable {

        private String id;

        @ApiModelProperty("所属场景")
        private String roomInfo;

        @ApiModelProperty("设备编号")
        private String deviceCode;

        @ApiModelProperty("设备名称")
        private String deviceName;

        @ApiModelProperty("是否重点关注设备")
        @Dict(dictCode = "ecp-admin.device.isFocus")
        private String isFocus;

        @ApiModelProperty("读表标识(1:总表,2:分表) >> distCode：ecp-admin.meterDevice.readMeterTag")
        @Dict(dictCode = "ecp-admin.meterDevice.readMeterTag")
        private String readMeterTag;

        @ApiModelProperty("计量值")
        private BigDecimal value;

        @ApiModelProperty("单位")
        private String unit;

        @ApiModelProperty("统计时间")
        private Date dateTime;

    }

}
